1. Technical Field
The present invention relates in general to improved management of virtualized systems. Still more particularly, the present invention relates to an operating system virtualization controller enabling a third party, migration enabled application to participate in migration of a virtualized application instance of the third party application.
2. Description of the Related Art
Virtualization of both hardware resources and software resources continues to provide a method for platform and software developers to improve hardware and software performance. In particular, when a system virtualizes resources, the logical representation of these resources may provide a finer granularity of sharing the resources among applications as needed to perform jobs.
In one example, a system may virtualize hardware resources into multiple divisions or partitions, where each partition includes a portion of the computer's processors, memory and other hardware resources. A computer's operating system may run within a single instance of the computer's partitioned resources or across multiple partitioned resource instances. In another example, a system may support virtualization by facilitating dynamic partitions, where the system can logically attach and detach hardware resources to and from different partitions without requiring the hardware resources or operating system instance of the partition to be rebooted. Further, in supporting virtualization, a system may virtualize applications and provide mobility for a virtualized software container for redistribution among partitions.
A system which supports mobility of a software virtualization from one partition to another without rebooting may accomplish the migration using checkpoint and restart operations, where the checkpoint operation captures the state of the processes of a software virtualization and a restart operation restarts the processes from the captured state. For most commercial applications, the application need not be aware that it is running in a software virtualization or that the software virtualization could be moved from one partition to another on the fly. For some applications, however, checkpoint and restart operations performed by the operating system which capture the state of processes are not sufficient to transfer the state of the entire software virtualization because the virtualized application maintains unique state information in addition to process state information. For example, for a file system application with its own operating system kernel extensions for controlling file system functions through the kernel, the system's checkpoint operation would not detect the state of file system information performed through the kernel extensions, but the file system kernel extension operations would need to be performed on the arrival system before the restart operation. In another example, an application may initiate changes in the kernel environment which would not be detected in the process states detected by a system's checkpoint operation, but which would need to be changed in the kernel environment on the arrival system before the restart operation is performed.
Because some applications maintain important state data in addition to process state information captured during a system's checkpoint operation, there is a need for migrating the additional state data unique to a particular application with the migration of the virtualized application instance. In particular, there is a need for an operating system which manages resource virtualization to enable a third party application to participate in the migration process so that the application can independently control the migration of additional state information unique to the virtualized application instance.